nVIDIA CUDA
CUDAکه مخفف عبارت Compute Unified Device Architecture است، یک معماری جدید پردازش موازی است که توسط nVIDIA ابداع شده است. CUDA موتور پردازشی در GPUهای nVIDIA است که توسط برنامهنویسان و در زبان برنامهنویسی خاص خود قابل دسترسی است. برنامهنویسان در نسخه خاصی از زبان قدرتمند C که دارای ضمیمه C with nVIDIA extensions) nVIDIA)است، برنامههای خود را مینویسند و بعد از کامپایل قادرند آنها را روی GPU اجرا کنند. البته به زودی با سایر زبانهای برنامهنویسی مثل C++ و Fortran هم میتوان روی GPU برنامه نوشت.
آخرین نسخه درایورها، همگی دارای تمامی اجزای مورد نیاز برای CUDA هستند. CUDA با تمامی GPUهای سری 8 به بعد شرکت nVIDIA در هر سه خط تولید GeForce، Quadro و Tesla کار میکند. nVIDIA تصریح میکند که تمامی برنامههایی که برای GeForce سری 8 نوشته شدهاند، همچنان بدون نیاز به تغییر روی کارتهای جدیدتر اجرا خواهند شد. CUDA همچنین امکان دسترسی برنامهنویسان به مجموعه دستورالعملهای Native و اجزای حافظه در پردازش موازی را نيز فراهم میکند که این امر توانایی برنامهنویس را در کنترل سختافزار بسیار بالا میبرد. بنابراین با استفاده از CUDA، معماری GPUها هم مثل CPUها باز میشود، گرچه GPUها برخلاف CPUها داراي یک معماری "بسیار-هستهای" موازی هستند که طي آن هستهها توانایی پردازش هزاران Thread را به طور همزمان دارند. بنابراین اگر برنامهاي منطبق با اين معماری باشد، میتواند راندمانی بسیار بالاتر از اجرا بر روی CPU را به ارمغان بیاورد.
با بیش از 100 میلیون GPU فروخته شده با قابلیت CUDA در سراسر دنیا، بسیاری از برنامهنویسان با استفاده از کیت
Software Development Kit) SDK)برنامهنویسی روی GPU که توسط nVIDIA فراهم شده است، در حال نوشتن برنامههای متفاوتی از سطح خانگی تا حرفهای از پردازشهای صوتی و تصویری گرفته تا شبیهسازیهای فیزیکی، اکتشاف نفت و گاز، طراحی محصول، تصاویر پزشکی و تحقیقات علمی هستند.
بسیاری از کاربردهای فوق حداقل 256 مگابایت حافظه اختصاصی گرافیکی نیاز دارند که امروزه این مقدار حافظه را روی تمامي کارتهای گرافیکی میتوان يافت.
در دنیای بازیهای کامپيوتري، کارتهای گرافیکی علاوه بر رندر تصاویر گرافیکی، برای محاسبات فیزیکی بازی (افکتهای فیزیکی مثل دود، آتش، حرکت آب، شن و ...) که اصطلاحاً PhysX نامیده میشوند، نیز مورد استفاده قرار میگیرند. CUDA همچنین برای افزایش سرعت کاربردهای غیر گرافیکی مثل محاسبات بیولوژیکی و رمزنگاری هم استفاده میشود.
CUDA هم APIهای سطح پایین و هم APIهای سطح بالا را فراهم کرده است. در 15 فوریه 2007 کیت SDK مربوط به CUDA در محیط ویندوز و لینوکس ارایه شد و سپس در نسخه 2.0 که در تاریخ 14 فوریه 2008 ارایه شد، MacOS هم مورد پشتیبانی قرار گرفت (شکل 1).
ویژگیهای CUDA • استفاده از زبان C استاندارد برای نوشتن برنامههای پردازش موازی بر روی GPU
• کتابخانههای عددی استاندارد برای انجام تبدیل فوریه سریع و سابروتینهای اصلی جبر خطی
• درایور CUDA اختصاصی برای انتقال سریع دادهها بین GPU و CPU
• درایور CUDA اختصاصی برای عمل متقابل با OpenGL و DirectX
• پشتیبانی از ویندوز و لینوکس و Mac OS
مزایای CUDA CUDA دارای چندین مزیت نسبت به روشهای معمول پردازش توسط GPGPU) GPU)است که در ادامه ذکر شدهاند:
• خواندن پراکنده: کدها میتوانند از چندین آدرس مختلف از حافظه خوانده شوند.
• حافظه اشتراکی: CUDA میتواند بخشی از حافظه را بین Threadها با سرعت بالا به اشتراک بگذارد که در واقع مثل کشی عمل میکند که توسط کاربر کنترل میشود و پهنای باند بالاتری را ایجاد میکند.
• دانلود و بازخوانی سریعتر به و از GPU
• پشتیبانی کامل از عملیات صحیح و بیتی
محدودیتهای CUDA • CUDA از یک زبان C، بدون توابع بازگشتی و بدون اشارهگر استفاده میکند و یک پردازش ساده، در بخشهای پراکنده حافظه پخش میشود، بر خلاف حالت عادی که از یک بخش یکپارچه از حافظه استفاده میگردد.
• رندر بافتها (Texture rendering) پشتیبانی نمیشود.
• پهنای باند و تاخیر گذرگاه بین CPU و GPU میتواند گلوگاه سیستم شود.
• در دقت مضاعف (double precision) هیچ مشکلی وجود ندارد اما در دقت تکی (single precision) به دلیل مشکلات ساختاری، کمی عدم دقت پيش میآید.
• برای راندمان بالا، Threadها باید در گروههای حداقل 32تایی اجرا شوند در حالی که نیاز به هزارها thread است. انشعابها در کد برنامه باعث افت راندمان ميشوند و هر 32 تا thread یک مسیر اجرایی را طلب میکند. مدل اجراییSIMD در زمان اجرای یک برنامه ذاتاً انشعابپذیر، دچار محدودیتهای قابل توجهی میشود.
• GPUهای دارای CUDA فقط در تولیدات سری 8 به بعد nVIDIA قابل پشتیبانی هستند.
تبديل کننده Badaboom nVIDIA در تولید نرمافزارهای مبتنی بر GPU پیشقدم شده و ابزاري به نام Badaboom برای تبدیل فرمتهای مختلف فایلهای ویدیویی به یکدیگر عرضه کرده است. nVIDIA میگوید
نظرات شما عزیزان: